import {
    RequestError,
    ResponseError,
    TokenInvalidError,
    RoleInUseError,
    AccountNameDuplicatedError,
    errorMap
  } from './errors'
  import { md5 } from '@/utilities/crypto' // 加密
  
  function signature(data) {
      return md5(data)
  }
//   员工信息导入
  export function oneFile(dataObj,setUrl,name,flie){
    var proFromData=new Promise(function(resolve,reject){
    let formData = new FormData();
    let data = dataObj
    let token = sessionStorage.getItem('token');
    let  a = new Date();
    let btime= a .getTime();
    var signs = "data="+JSON.stringify(data)+"&stmb="+btime;
    var oReq = new XMLHttpRequest();
    // let length = document.getElementsByClassName("el-upload__input").length
    // formData.append(name, flie);
    if(document.getElementsByClassName("el-upload__input").length != '0'){
        formData.append(name, flie);
    }
    formData.append("data", JSON.stringify(data));
    formData.append("version", "");
    formData.append("token", token);
    formData.append("stmb", btime);
    formData.append('sign', signature(signs))
    oReq.open("POST", setUrl, true);
    oReq.send(formData);
    oReq.onreadystatechange = () => {//在这里指定上传成功的回调函数，接受返回值  
                if (oReq.readyState == 4 && oReq.status == 200) {  
                        let res = JSON.parse(oReq.responseText);  
                        if(res.rspCode){
                            if(res.rspCode == "0000"){
                                // resolve(res)
                                if(res.rspMsg != ''){
                                    resolve(res.rspMsg) 
                                }else{
                                    resolve("提交成功!")
                                }
                            }else if(res.rspCode == "1111"){
                                if(res.rspMsg != ''){
                                    reject(res.rspMsg) 
                                }else{
                                    reject("服务器异常，请联系管理员或稍后再试!")
                                }
                            }else if(res.rspCode == "1998"){
                                reject("参数非法!")
                            }else if(res.rspCode == "1999"){
                                reject("会话超时!")
                                reject("参数缺失!")
                            }else if(res.rspCode == "4444"){
                                reject("请求不合理!")
                            }else if(res.rspCode == "4000"){
                                reject("上传的文件不存在!")
                            }else if(res.rspCode == "5000"){
                                reject("token失效，需要重新登入!")
                            }else if(res.rspCode == "5001"){
                                reject("没有权限!")
                            }else if(res.rspCode == "5002"){
                                reject("角色已经存在!")
                            }else if(res.rspCode == "5003"){
                                reject("角色已经使用!")
                            }else if(res.rspCode == "5203"){
                                reject("查询出来的数据过大，无法导出!")
                            }else if(res.rspCode == "5004"){
                                reject("用户锁定!")
                            }else if(res.rspCode == "5005"){
                                reject("菜单不存在!")
                            }else if(res.rspCode == "5006"){
                                reject("用户密码错误!")
                            }else if(res.rspCode == "5007"){
                                reject("用户名已存在!")
                            }else if(res.rspCode == "5008"){
                                reject("菜单添加失败!")
                            }else if(res.rspCode == "5009"){
                                reject("权限失败!")
                            }else if(res.rspCode == "5010"){
                                reject("输入的原密码错误!")
                            }else if(res.rspCode == "5011"){
                                reject("输入的权限菜单为空!")
                            }else if(res.rspCode == "6001"){
                                reject("商品信息不存在!")
                            }else if(res.rspCode == "6002"){
                                reject("商品不是实物!")
                            }else if(res.rspCode == "6003"){
                                reject("商品名称已经存在了!")
                            }else if(res.rspCode == "6004"){
                                reject("上传的文件不存在!")
                            }else if(res.rspCode == "6005"){
                                reject("上传的文件数量错误!")
                            }else if(res.rspCode == "6006"){
                                reject("上传的文件xls不存在!")
                            }else if(res.rspCode == "6007"){
                                reject("商品库存还有可用数量!")
                            }else if(res.rspCode == "6008"){
                                reject("商品库存没有可用数量!")
                            }else if(res.rspCode == "6009"){
                                reject("开始时间不能大于结束时间!")
                            }else if(res.rspCode == "6011"){
                                reject("banner序号重复，请重新输入序号！")
                            }else if(res.rspCode == "6101"){
                                reject("机构名称已经存在!")
                            }else if(res.rspCode == "6102"){
                                reject("上传的图片不存在!")
                            }else if(res.rspCode == "6103"){
                                reject("banner名称已经存在!")
                            }else if(res.rspCode == "6104"){
                                reject("上传的图片不存在!")
                            }else if(res.rspCode == "6201"){
                                reject("查询的信息无效!")
                            }else if(res.rspCode == "6301"){
                                reject("商户名称已经存在!")
                            }else if(res.rspCode == "6302"){
                                reject("商户用户名称已经存在!")
                            }else if(res.rspCode == "6303"){
                                reject("商户信息不存在!")
                            }else if(res.rspCode == "7100"){
                              reject("该分类名称已经存在!")
                            }else if(res.rspCode == "7202"){
                              reject("模块banner名称已经存在!")
                            }else{
                                // reject(res.rspMsg) 
                                if(res.rspMsg != ''){
                                    reject(res.rspMsg) 
                                }else{
                                    reject("数据提交失败，请稍后重试!")
                                }
                            }
                        }
                }
        };
    })
    return proFromData;
}
// 单个图片上传
export function oneImgFromData(dataObj,setUrl,name,flie){
    var proFromData=new Promise(function(resolve,reject){
    let formData = new FormData();
    let data = dataObj
    let token = sessionStorage.getItem('token');
    let  a = new Date();
    let btime= a .getTime();
    var signs = "data="+JSON.stringify(data)+"&stmb="+btime;
    var oReq = new XMLHttpRequest();
    if(document.getElementsByClassName("el-upload__input").length != '0'){
      formData.append(name, flie);
    }
      formData.append("data", JSON.stringify(data));
      formData.append("version", "");
      formData.append("token", token);
      formData.append("stmb", btime);
      formData.append('sign', signature(signs))
      oReq.open("POST", setUrl, true);
    oReq.send(formData);
    oReq.onreadystatechange = () => {//在这里指定上传成功的回调函数，接受返回值  
                if (oReq.readyState == 4 && oReq.status == 200) {  
                        let res = JSON.parse(oReq.responseText);  
                        if(res.rspCode){
                          if(res.rspCode == "0000"){
                          resolve("提交成功!")
                          }else if(res.rspCode == "1111"){
                            if(res.rspMsg != ''){
                                reject(res.rspMsg) 
                            }else{
                                reject("服务器异常，请联系管理员或稍后再试!")
                            }
                          }else if(res.rspCode == "1998"){
                              reject("参数非法!")
                          }else if(res.rspCode == "1999"){
                              reject("会话超时!")
                              reject("参数缺失!")
                          }else if(res.rspCode == "4444"){
                              reject("请求不合理!")
                          }else if(res.rspCode == "4000"){
                              reject("上传的文件不存在!")
                          }else if(res.rspCode == "5000"){
                              reject("token失效，需要重新登入!")
                          }else if(res.rspCode == "5001"){
                              reject("没有权限!")
                          }else if(res.rspCode == "5002"){
                              reject("角色已经存在!")
                          }else if(res.rspCode == "5003"){
                              reject("角色已经使用!")
                          }else if(res.rspCode == "5203"){
                              reject("查询出来的数据过大，无法导出!")
                          }else if(res.rspCode == "5004"){
                              reject("用户锁定!")
                          }else if(res.rspCode == "5005"){
                              reject("菜单不存在!")
                          }else if(res.rspCode == "5006"){
                              reject("用户密码错误!")
                          }else if(res.rspCode == "5007"){
                              reject("用户名已存在!")
                          }else if(res.rspCode == "5008"){
                              reject("菜单添加失败!")
                          }else if(res.rspCode == "5009"){
                              reject("权限失败!")
                          }else if(res.rspCode == "5010"){
                              reject("输入的原密码错误!")
                          }else if(res.rspCode == "5011"){
                              reject("输入的权限菜单为空!")
                          }else if(res.rspCode == "6001"){
                              reject("商品信息不存在!")
                          }else if(res.rspCode == "6002"){
                              reject("商品不是实物!")
                          }else if(res.rspCode == "6003"){
                              reject("商品名称已经存在了!")
                          }else if(res.rspCode == "6004"){
                              reject("上传的文件不存在!")
                          }else if(res.rspCode == "6005"){
                              reject("上传的文件数量错误!")
                          }else if(res.rspCode == "6006"){
                              reject("上传的文件xls不存在!")
                          }else if(res.rspCode == "6007"){
                              reject("商品库存还有可用数量!")
                          }else if(res.rspCode == "6008"){
                              reject("商品库存没有可用数量!")
                          }else if(res.rspCode == "6009"){
                              reject("开始时间不能大于结束时间!")
                          }else if(res.rspCode == "6011"){
                            reject("banner序号重复，请重新输入序号！")
                          }else if(res.rspCode == "6101"){
                              reject("机构名称已经存在!")
                          }else if(res.rspCode == "6102"){
                              reject("上传的图片不存在!")
                          }else if(res.rspCode == "6103"){
                              reject("banner名称已经存在!")
                          }else if(res.rspCode == "6104"){
                              reject("上传的图片不存在!")
                          }else if(res.rspCode == "6201"){
                              reject("查询的信息无效!")
                          }else if(res.rspCode == "6301"){
                              reject("商户名称已经存在!")
                          }else if(res.rspCode == "6302"){
                              reject("商户用户名称已经存在!")
                          }else if(res.rspCode == "6303"){
                              reject("商户信息不存在!")
                          }else if(res.rspCode == "7100"){
                            reject("该分类名称已经存在!")
                          }else if(res.rspCode == "7202"){
                            reject("模块banner名称已经存在!")
                          }else{
                            reject(res.rspMsg) 
                          }
                      }
                }
        };
    })
    return proFromData;
}